<?php

session_start();

require('setlang.php');
require('Models/basics.php');
require('Models/alert.php');
require('Models/connectBDD.php');
require('Models/location.php');
require('Models/formerrors.php');
require('Models/historyClient.php');
require('Models/comment.php');
require('Models/ariane.php');

$Ariane = getArianeGenealogy();

$connexion = PDO_BDD_Connect();

if (!isValidSessionUser($connexion) || !areValidUserRights($connexion))
{
	header('Location:logout.php');
}
//On récupère les locations par personne (l'utilisateur en question)	
$Locations = getLocationByPers($connexion,$_SESSION['userid']);	
//Si on a un bien et un id de commentaire
if (isset($_POST["good"]) && isset($_POST["commentId"]))
{
	//Si on est en mode édition de commentaire
	if (isset($_POST["editComment"]))
	{
		//Si c'est bien un commentaire de l'utilisateur, on passe en mode édition avec les données utiles
		if (isReallyUserComment($Locations,$_POST["good"],$_POST["commentId"]))
		{
			$editMode = true;
			$advice = getComDetails($connexion,$_POST["commentId"]);
			$titre_avis = $advice->titre_avis;
			$commentaire = $advice->commentaire;
			$note = intval($advice->notation);
		}
		//Si l'id du commentaire est de 0, on en ajoute un nouveau, on vérifie donc que l'utilisateur a bien loué et n'a pas posté d'autre commentaire sur le bien
		else if ($_POST["commentId"] == "0" && isReallyUserGoodLocated($Locations,$_POST["good"]) && hasNoPreviousCommentFromUser($Locations,$_POST["good"]))
		{
			$editMode = true;
			$titre_avis = "";
			$commentaire = "";
			$note = 5;
		}

	}
	//Si on supprime le commentaire et que c'est bien un des siens, on l'efface
	else if (isset($_POST["deleteComment"]) && isReallyUserComment($Locations,$_POST["good"],$_POST["commentId"]))
	{
		
		$deleted = deleteCommentById($connexion,$_POST["commentId"]);
	
	}
	//Si enfin on valide l'édition, on vérifie que ce soit une édition auquel cas on edite, sinon c'est un nouveau donc on le crée en BDD
	else if (isset($_POST["validerEdit"]))
	{
		if ($_POST["commentId"] != "0" && isReallyUserComment($Locations,$_POST["good"],$_POST["commentId"]))
		{
			
			$errors = getFormErrors(array("titre_avis","commentaire","notation"),"POST");
			
			if (empty($errors))
			{
				$edited = updateCommentContent($connexion,$_POST["commentId"],$_POST["titre_avis"],$_POST["commentaire"],$_POST["notation"]);
				addAlertToUser($connexion,getProprioIdByGood($connexion,$_POST["good"]),$_POST["commentId"],"com");
			}
			
		}
		else if ($_POST["commentId"] == "0" && isReallyUserGoodLocated($Locations,$_POST["good"]) && hasNoPreviousCommentFromUser($Locations,$_POST["good"]))
		{
			
			$errors = getFormErrors(array("titre_avis","commentaire","notation"),"POST");
			
			if (empty($errors))
			{
				$id = addComment($connexion,$_POST["good"],$_POST["titre_avis"],$_POST["commentaire"],$_POST["notation"]);
				if ($id > 0)
				{
					addAlertToUser($connexion,getProprioIdByGood($connexion,$_POST["good"]),$id,"com");
				}
				else
				{
					$addError = true;
				}
			}
			
		}
	}

}
//Si on a validé un fichier, c'est que c'est une image.
else if (isset($_POST["validerFile"]) && isset($_POST["good"]) && isReallyUserGoodLocated($Locations,$_POST["good"]))
{
	//On récupère son nom de fichier ainsi que son extension.
	$filename = $_FILES['file']['name'];
	$filepath = pathinfo($filename);
	$extension = strtolower($filepath['extension']);
	$allowedExt = array("jpg", "png", "bmp");
	//Si l'extension est correcte, on ajoute le fichier, sinon on informe d'une erreur d'extension
	if (!(in_array($extension, $allowedExt))) {
		$extError = true;
	} else {
		//On récupère le dossier de la location, on renomme en fonction de timestamp pour l'unicité des noùs et on le cache automatiquement (c'est le client qui ajoute ici)
		$folder = "Locations/".$_POST["good"]."/";
		$newname = "non_".date("YmdHis").".".$extension;
		//Si on l'a uploadé, on le mets en CHMOD 777 enfin on le converti en PNG et on ajoute une alerte au propriétaire
		if (move_uploaded_file($_FILES["file"]["tmp_name"], $folder.$newname)) {
			$upload = true;
			chmod($folder.$newname,0777);
			
			if ($extension != "png")
			{
				convertToPng($newname,$folder,true);
			}
			
			$proprio = GetProprioInformations($connexion,$_POST["good"]);
			addAlertToUser($connexion,$proprio->id,$_POST["good"],"pic");
		} else {
			$upload = false;
		}
	}

	
}

$Locations = getLocationByPers($connexion,$_SESSION['userid']);	

require('Views/historyClient.php');

?>
